<template>
  <div class="contarner-page" @click.stop="showLanguageHandel">
    <page-header ref="languageRef"></page-header>
    <main>
      <div class="downloader flex_ccenter" v-if="!success">
        <div class="container">
          <div class="hero-widgets flex_between c-fff">
            <div class="tool-item shou flex_center" @click="changeTab(0)">
              <img src="/static/images/video.svg" alt="savinginsta video" />
              <span class="f-16">Video</span>
            </div>
            <div class="tool-item shou flex_center" @click="changeTab(1)">
              <img src="/static/images/Photo.svg" alt="savinginsta photo" />
              <span class="f-16">Photo</span>
            </div>
            <div class="tool-item shou flex_center" @click="changeTab(2)">
              <img src="/static/images/Reels.svg" alt="savinginsta reels" />
              <span class="f-16">Reels</span>
            </div>
            <div class="tool-item shou flex_center" @click="changeTab(3)">
              <img src="/static/images/Story.svg" alt="savinginsta story" />
              <span class="f-16">Story</span>
            </div>
            <div class="tool-item shou flex_center" @click="changeTab(4)">
              <img src="/static/images/Igtv.svg" alt="savinginsta IGTV" />
              <span class="f-16">IGTV</span>
            </div>
          </div>
          <div class="banner-heading flex_ccenter">
            <div class="heading-item" v-show="current == 0">
              <h1 class="title fw700 f-42 c-fff">Scarica video da Instagram</h1>
              <h2 class="sub c-fff f-18 fw400">
                Scarica video, foto, reel, storie e IGTV di Instagram Contenuto
                in linea
              </h2>
            </div>
            <div class="heading-item" v-show="current == 1">
              <nuxt-link to="/it/instagram-photo-download">
                <div @click="goToTop('Photo')" class="tItem">
                  <h3 class="title fw700 f-42 c-fff shou">
                    Scaricatore di foto da Instagram
                  </h3>
                </div>
              </nuxt-link>
              <p class="sub c-fff f-18 fw400">
                Inserisci l'URL della FOTO di Instagram qui sotto
              </p>
            </div>
            <div class="heading-item" v-show="current == 2">
              <nuxt-link to="/it/instagram-reels-video-download">
                <div @click="goToTop('reels')" class="tItem">
                  <h3 class="title fw700 f-42 c-fff shou">
                    Scarica i rulli di Instagram
                  </h3>
                </div>
              </nuxt-link>
              <p class="sub c-fff f-18 fw400">
                Inserisci l'URL di Instagram Reels di seguito
              </p>
            </div>
            <div class="heading-item" v-show="current == 3">
              <nuxt-link to="/it/instagram-story-download">
                <div @click="goToTop('story')" class="tItem">
                  <h3 class="title fw700 f-42 c-fff shou">
                    Scarica la storia di Instagram
                  </h3>
                </div>
              </nuxt-link>
              <p class="sub c-fff f-18 fw400">
                Inserisci l'URL delle storie di Instagram di seguito
              </p>
            </div>
            <div class="heading-item" v-show="current == 4">
              <nuxt-link to="/it/igtv-downloader">
                <div @click="goToTop('igtv')" class="tItem">
                  <h3 class="title fw700 f-42 c-fff shou">Scarica VideoIGTV</h3>
                </div>
              </nuxt-link>
              <p class="sub c-fff f-18 fw400">
                Inserisci l'URL IGTV di Instagram di seguito
              </p>
            </div>
          </div>
          <div class="form flex_center">
            <div class="input-box flex_between">
              <!-- <input
                type="text"
                class="input f-18"
                v-model="input"
                @input="handleInput"
                @paste="handleInput"
                placeholder="Paste URL Instagram"
                list="fruits"
                name="fruit"
              />
              <datalist id="fruits">
                <option value="Apple"></option>
                <option value="Banana"></option>
                <option value="Cherry"></option>
              </datalist> -->
              <input
                type="text"
                class="input f-18"
                v-model="input"
                :disabled="isHttpLoading"
                @input="handleInput"
                @paste="handleInput"
                @keydown="sendDownload($event)"
                placeholder="Paste URL Instagram"
              />
              <div
                class="Paste shou flex_center"
                @click="handleClickPasted"
                v-if="input == ''"
              >
                <div class="btnbg"></div>
                <div class="f-16 c-000 fw700">Paste</div>
              </div>
              <div
                class="clear shou flex_center"
                v-if="input != '' && !isHttpLoading"
                @click.stop="input = ''"
              >
                <div class="btnbg"></div>
                <div class="f-16 c-000 fw700">Clear</div>
              </div>
            </div>
            <div
              v-if="!isHttpLoading"
              @click.stop="downloadHandel"
              class="submit shou fw700 c-fff flex_center"
            >
              Download
            </div>
            <div v-else class="submit shou fw700 c-fff flex_center">
              Please wait
            </div>
          </div>
          <div class="app-submit flex_ccenter">
            <div
              class="submit flex_center"
              v-if="!isHttpLoading"
              @click.stop="downloadHandel"
            >
              <div class="fw700 c-fff f-21">Download</div>
            </div>
            <div class="submit flex_center" v-else>
              <div class="fw700 c-fff f-21">Please wait</div>
            </div>
          </div>
          <div class="loading" v-if="isHttpLoading">
            <div class="loading-dots flex_center">
              <div class="dot"></div>
              <div class="dot"></div>
              <div class="dot"></div>
              <div class="dot"></div>
            </div>
            <div class="tips f-18 flex_center">
              <div>Recupero dei dati, attendi qualche secondo!</div>
            </div>
          </div>
          <div class="error flex_ccenter" v-if="httpError1">
            <div class="hono flex_">
              <div class="error-img"></div>
              <div class="error-img"></div>
              <div class="error-img"></div>
            </div>
            <div class="errMsg f-18">
              Il sito non può elaborare il tuo collegamento perché è privato
            </div>
          </div>
          <div class="error flex_ccenter" v-if="httpError2">
            <div class="hono flex_">
              <div class="error-img"></div>
              <div class="error-img"></div>
              <div class="error-img"></div>
            </div>
            <div class="errMsg f-18">
              I dati che hai inserito non sono un collegamento. Inserisci un
              collegamento valido, per esempio:
              <div>https://www.instagram.com/reel/Cml9qu-ISqx</div>
            </div>
          </div>
        </div>
      </div>
      <!-- 广告位start -->
      <!-- 广告位end -->
      <div class="container" v-if="!success">
        <div class="body-content">
          <div class="title-box">
            <h3 class="title f-36 c-000 italic">
              Tutte le funzionalità di Savinginsta.Com
            </h3>
            <p class="sub f-16 c-ccc">
              Savinginsta è compatibile con tutte le varietà di video Instagram
              e collegamenti di immagini.
            </p>
          </div>
          <div class="list-tools-pc">
            <div class="tool-box flex_between">
              <div class="tool-info">
                <nuxt-link to="/it">
                  <div @click="goToTop('video')" class="tItem">
                    <h4>Scaricare video da instagram</h4>
                  </div>
                </nuxt-link>
                <p>
                  Savinginsta è progettato per consentirti di scaricarne uno tuo
                  contenuti da Instagram. Offre supporto per il download di
                  entrambi video singoli e multipli da Insta.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  src="/static/images/instagram-video-downloader.webp"
                  alt="Instagram video downloader"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  src="/static/images/instagram-video-downloader-app.webp"
                  alt="Instagram video downloader"
                />
              </div>
            </div>
            <div class="tool-box tool-reverse flex_between">
              <div class="tool-info">
                <nuxt-link to="/it/instagram-photo-download">
                  <div @click="goToTop('Photo')" class="tItem">
                    <h4>Scaricatore di foto da Instagram</h4>
                  </div>
                </nuxt-link>
                <p>
                  Il downloader di foto di Instagram di Savinginsta lo rende
                  semplicissimo per salvare foto singole o multiple, inclusi
                  collage, da Instagram. Con questo strumento, scaricando i
                  singoli post immagini o una raccolta di foto di Instagram è
                  semplice e semplice.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  loading="lazy"
                  src="/static/images/instagram-photo-downloader.webp"
                  alt="Instagram photo downloader"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  loading="lazy"
                  src="/static/images/instagram-photo-downloader-app.webp"
                  alt="Instagram photo downloader"
                />
              </div>
            </div>
            <div class="tool-box flex_between">
              <div class="tool-info">
                <nuxt-link to="/it/instagram-reels-video-download">
                  <div @click="goToTop('reels')" class="tItem">
                    <h4>Scarica i rulli di Instagram</h4>
                  </div>
                </nuxt-link>
                <p>
                  Instagram Reels Downloader di Savinginsta ti consente di farlo
                  scarica facilmente i video Reels dai post di Instagram su il
                  tuo dispositivo, fornendo una soluzione semplice in cui
                  Instagram di per sé non offre supporto per questa funzione.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  loading="lazy"
                  src="/static/images/download-instagram-reels.webp"
                  alt="Download Instagram Reels"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  loading="lazy"
                  src="/static/images/download-instagram-reels-app.webp"
                  alt="Download Instagram Reels"
                />
              </div>
            </div>
            <div class="tool-box tool-reverse flex_between">
              <div class="tool-info">
                <nuxt-link to="/it/igtv-downloader">
                  <div @click="goToTop('igtv')" class="tItem">
                    <h4>Scaricatore IGTV</h4>
                  </div>
                </nuxt-link>
                <p>
                  Le storie di Instagram offrono agli utenti una piattaforma
                  distintiva condividere le proprie esperienze quotidiane
                  attraverso foto e video con a pubblico vasto. Occasionalmente
                  potresti voler salvare un preferito storia, ma questa
                  funzionalità non è disponibile nell'app. Savinginsta affronta
                  questo problema fornendo una soluzione che consente agli
                  utenti di scaricare e visualizzare facilmente le storie di
                  Instagram offline, garantendo che i contenuti memorabili non
                  vadano mai persi.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  loading="lazy"
                  src="/static/images/igtv-downloader.webp"
                  alt="IGTV downloader"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  loading="lazy"
                  src="/static/images/igtv-downloader-app.webp"
                  alt="IGTV downloader"
                />
              </div>
            </div>
            <div class="tool-box flex_between">
              <div class="tool-info">
                <nuxt-link to="/it/instagram-story-download">
                  <div @click="goToTop('story')" class="tItem">
                    <h4>Visualizzatore di storie di Instagram</h4>
                  </div>
                </nuxt-link>
                <p>
                  IGTV offre video di lunga durata e, se non sei in grado di
                  farlo visualizzarli immediatamente, hai la possibilità di
                  scaricarli Video IGTV sul tuo PC. Ciò ti consente di farlo
                  comodamente rivisitali e goditeli più tardi, anche senza
                  Internet connessione ed elimina le preoccupazioni sul
                  contenuto IGTV essere rimosso o non disponibile.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  loading="lazy"
                  src="/static/images/instagram-story-download.webp"
                  alt="Instagram Story Download"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  loading="lazy"
                  src="/static/images/instagram-story-download-app.webp"
                  alt="Instagram Story Download"
                />
              </div>
            </div>
          </div>
          <div class="app-box">
            <div class="app-box__info">
              <h3 class="app-box__title f-21 fw700 c-000">
                Scarica con l'app Insta Downloader
              </h3>
              <p class="f-16 c-ccc">
                La nostra app offre una soluzione rapida e semplice per il
                download Video di Instagram, che forniscono video di qualità HD
                senza filigrane.
              </p>
            </div>
            <div class="app-link">
              <a 
                  target="_blank" href="https://play.google.com/store/apps/details?id=ins.freevideodownload.pro">
                <img src="/static/images/google-play.webp" alt="Download app " />
              </a>
              <a href="https://apps.apple.com/us/app/repost-for-video-save-story/id6462401460"  target="_blank">
                <img src="/static/images/IOS.webp" alt="Download app " />
              </a>
            </div>
          </div>
          <div class="quick-info">
            <h3 class="f-32 c-000">
              SAVINGINSTA - MIGLIOR STRUMENTO PER DOWNLOADER DI INSTAGRAM
            </h3>
            <p class="f-16 c-ccc">
              Savinginsta si distingue come downloader di Instagram di alto
              livello, sapientemente realizzato per scaricare rapidamente
              contenuti di alta qualità da Instagram. Quando cerchi il metodo
              più efficace per scaricare Media di Instagram, il downloader
              Savinginsta emerge come leader soluzione di terze parti.
            </p>
            <p class="f-16 c-ccc">
              Instagram, rinomata come l'app di condivisione di foto più famosa
              al mondo, testimonia il caricamento di milioni di foto ogni
              giorno. Per tale momenti, diventa la necessità di un downloader di
              video Instagram evidente, fornendo una soluzione perfetta per le
              vostre esigenze immediate. Questo strumento è essenziale per
              chiunque voglia preservare il proprio i contenuti Instagram
              preferiti in modo efficiente.
            </p>
          </div>
          <div class="features c-fff">
            <h3 class="h3 fw700 f-21">
              Funzionalità di Savinginsta Instagram Video Downloader:
            </h3>
            <div class="attributes-list flex_between">
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Scarica video da Instagram Veloce, facile e sicuro.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Puoi disconnetterti dal tuo account Instagram.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Con un semplice clic del pulsante, puoi scaricare le immagini
                  di Instagram e video.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Scarica e salva immagini e video nella loro altezza originale
                  definizione e qualità.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Dagli account personali, scarica e salva i video di Instagram.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Alta velocità: a partire da ora, Savinginsta offre il più
                  veloce velocità di download.
                </div>
              </div>
            </div>
          </div>
          <div class="how">
            <div class="how-title">
              <h3 class="f-36 c-000 italic">
                Come utilizzare Savinginsta Instagram Downloader per salvare da
                IG
              </h3>
              <div class="note c-ccc f-16">
                Nota: assicurati che il video o la foto di Instagram che
                desideri il download proviene da un account pubblico.
              </div>
            </div>
            <div class="steps">
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">Passaggio 01:</span>
                  <span class="f-16 c-000"
                    >Copia l'URL delle foto e dei video di Instagram</span
                  >
                </div>
                <div class="app-step">
                  <div class="fw700 c-000 f-16">
                    Sull'applicazione Instagram:
                  </div>
                  <div class="c-000 f-16">
                    Per iOS: tocca per ottenere l'URL della foto di Instagram.
                  </div>
                  <div class="c-000 f-16">
                    Per Android: fai clic sopra il post e seleziona "Copia il
                    file". URL di Instagram", quindi premi "Copia URL di
                    condivisione". Il collegamento sarà copiato negli appunti.
                  </div>
                  <div class="fw700 c-000 f-16">- Su PC/Mac:</div>
                  <div class="c-000 f-16">
                    Fai clic con il pulsante destro del mouse sulla data del video o della foto di Instagram e
                     seleziona "Copia indirizzo collegamento" per scaricare i contenuti di Instagram
                     il tuo desktop.
                  </div>
                </div>
              </div>
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">Passaggio 02:</span>
                  <span class="f-16 c-000">
                    Incolla l'URL in Savinginsta.App</span
                  >
                </div>
                <div class="app-step">
                  <div class="c-000 f-16">
                    Passare a Savinginsta.App, l'Instagram dedicato
                     downloader.
                  </div>
                  <div class="c-000 f-16">
                    Copia e incolla l'URL copiato nel campo di testo specificato.
                  </div>
                </div>
              </div>
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">Passaggio 03:</span>
                  <span class="f-16 c-000">Avviare il download</span>
                </div>
                <div class="app-step">
                  <div class="c-000 f-16">
                    Fare clic sul pulsante "Download" per avviare il video Instagram o
                     processo di download delle foto.
                  </div>
                  <div class="fw700 c-000 f-16">
                    Informazioni importanti sull'utilizzo
                  </div>
                  <div class="c-000 f-16">
                    Savinginsta è progettato principalmente per scaricare video e
                     immagini dal tuo account Instagram.
                  </div>
                  <div class="c-000 f-16">
                    Diamo priorità alla privacy degli utenti e ci riserviamo il diritto di rifiutare
                     servizio se i nostri strumenti vengono utilizzati per violare i diritti di altri
                     privacy o accedere a materiale non autorizzato.
                  </div>
                </div>
              </div>
            </div>
            <div class="user-note f-16">
              <div class="app-tip"></div>
              Per una comprensione completa delle nostre politiche

              <a class="fw700 c-blue" href="/terms-of-service">
                ti invitiamo a leggere i nostri Termini di servizio completi qui.</a
              >
            </div>
          </div>
          <div class="faq-section">
            <h3 class="faq-title f-36 c-000 italic">FAQ</h3>
            <div class="accordion">
              <div
                id="faq"
                itemscope="itemscope"
                itemtype="https://schema.org/FAQPage"
              >
                <div
                  itemprop="mainEntity"
                  itemscope="itemscope"
                  itemtype="https://schema.org/Question"
                  class="accordion-item"
                  :key="k"
                  v-for="(item, k) in faqList"
                >
                  <h4 itemprop="name" class="accordion-title fw700 f-16">
                    {{ item.title }}
                  </h4>
                  <div
                    itemprop="acceptedAnswer"
                    itemscope=""
                    itemtype="https://schema.org/Answer"
                  >
                    <div
                      itemprop="text"
                      class="accordion-text f-16 c-ccc fw400"
                    >
                      {{ item.content }}
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- 解析结果 start -->
      <div class="container" v-if="success">
        <success-content
          @refresh="refresh"
          :list="successList"
        ></success-content>
      </div>
      <!-- 解析结果 end -->
    </main>
    <footer>
      <div class="container">
        <div class="footer-content">
          <div class="footer-link">
            <div class="row flex_between">
              <div class="col-12">
                <div class="link-label fw700 c-000 f-21">Utensili</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li @click="goToTools('story')">
                    <nuxt-link to="/it/instagram-story-download"
                      >Scaricatore di storie di Instagram</nuxt-link
                    >
                  </li>
                  <li @click="goToTools('reels')">
                    <nuxt-link to="/it/instagram-reels-video-download"
                      >Downloader di bobine di Instagram</nuxt-link
                    >
                  </li>
                  <li>
                    <a href="https://savingtik.com/" target="_blank"
                      >Scaricatore di Tiktok</a
                    >
                  </li>
                </ul>
              </div>
              <div class="col-6">
                <div class="link-label fw700 c-000 f-21">Supporto</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/contact"> Contatto </nuxt-link>
                  </li>
                  <li>
                    <nuxt-link to="/blog"> Blog </nuxt-link>
                  </li>
                </ul>
              </div>
              <div class="col-6">
                <div class="link-label fw700 c-000 f-21">Legale</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/terms-of-service">
                      Termini di servizio
                    </nuxt-link>
                  </li>
                  <li>
                    <nuxt-link to="/privacy-policy"> politica sulla riservatezza </nuxt-link>
                  </li>
                </ul>
              </div>
            </div>
          </div>
          <div class="copyright flex_ccenter">
            <b class="fw700 f-21 c-000"
              >Non siamo affiliati con Instagram o Meta</b
            >
            <div class="c-ccc f-16">
              © {{new Date().getFullYear()}} Insta Downloader All rights reserved.
            </div>
          </div>
        </div>
      </div>
    </footer>
  </div>
</template>

<script>
import { mapState, mapGetters, mapMutations } from "vuex";
import pageHeader from "~/components/page-header.vue";
import SuccessContent from "~/components/success-content.vue";
import CryptoJS from "crypto-js";
import { handleClick, checkString } from "@/plugins/Firebase.js";

export default {
  components: { pageHeader, SuccessContent },
  name: "IndexPage",
  head: {
    htmlAttrs: {
      lang: "it",
    },
    bodyAttrs: {
      "data-lang": "it",
    },
    title:
      "Downloader di Instagram - Scarica video di Instagram online - Savinginsta",
    meta: [
      { property: "og:locale", content: "it" },
      //Page Information
      {
        name: "description",
        content:
          "Salvataggio di Instagram: scarica facilmente video, reel e foto di Instagram con il nostro strumento intuitivo. Salva i tuoi video Instagram in modo rapido e sicuro su qualsiasi dispositivo.",
      },
      //Schema.org Microdata
      {
        itemprop: "name",
        content:
          "Downloader di Instagram - Scarica video di Instagram online - Savinginsta",
      },

      // Facebook / OpenGraph
      {
        property: "og:title",
        content:
          "Downloader di Instagram - Scarica video di Instagram online - Savinginsta",
      },
      { property: "og:type", content: "website" },
      { property: "og:url", content: "https://savinginsta.com/it" },

      {
        property: "og:description",
        content:
          "Salvataggio di Instagram: scarica facilmente video, reel e foto di Instagram con il nostro strumento intuitivo. Salva i tuoi video Instagram in modo rapido e sicuro su qualsiasi dispositivo.",
      },
      //Twitter
      { name: "twitter:card", content: "summary" },
      { name: "twitter:url", content: "https://savinginsta.com/it" },
      {
        name: "twitter:title",
        content:
          "Downloader di Instagram - Scarica video di Instagram online - Savinginsta",
      },
      {
        name: "twitter:description",
        content:
          "Salvataggio di Instagram: scarica facilmente video, reel e foto di Instagram con il nostro strumento intuitivo. Salva i tuoi video Instagram in modo rapido e sicuro su qualsiasi dispositivo.",
      },
      //multilingual
      {
        name: "google",
        content: "notranslate",
      },
      {
        itemprop: "image",
        content: "https://savinginsta.com/static/images/savinginsta_thumbnail.jpg",
      },
      {
        property: "og:image",
        content: "https://savinginsta.com/static/images/savinginsta_thumbnail.jpg",
      },
      {
        name: "twitter:image",
        content: "https://savinginsta.com/static/images/savinginsta_thumbnail.jpg",
      },
    ],
    link: [
      //multilingual
      {
        rel: "alternate",
        hreflang: "x-default",
        href: "https://savinginsta.com/it",
      },
      {
        rel: "alternate",
        hreflang: "en",
        href: "https://savinginsta.com/",
      },
      {
        rel: "alternate",
        hreflang: "en-in",
        href: "https://savinginsta.com/in",
      },
      {
        rel: "alternate",
        hreflang: "vi",
        href: "https://savinginsta.com/vn",
      },
      {
        rel: "alternate",
        hreflang: "tr",
        href: "https://savinginsta.com/tr",
      },
      {
        rel: "alternate",
        hreflang: "id",
        href: "https://savinginsta.com/id",
      },
      {
        rel: "alternate",
        hreflang: "fr",
        href: "https://savinginsta.com/fr",
      },
      {
        rel: "alternate",
        hreflang: "pt",
        href: "https://savinginsta.com/pt",
      },
      {
        rel: "alternate",
        hreflang: "ru",
        href: "https://savinginsta.com/ru",
      },
      {
        rel: "alternate",
        hreflang: "es",
        href: "https://savinginsta.com/es",
      },
      {
        rel: "alternate",
        hreflang: "ms",
        href: "https://savinginsta.com/ms",
      },
      {
        rel: "alternate",
        hreflang: "ko",
        href: "https://savinginsta.com/ko",
      },
      {
        rel: "alternate",
        hreflang: "ja",
        href: "https://savinginsta.com/ja",
      },
      {
        rel: "alternate",
        hreflang: "jv",
        href: "https://savinginsta.com/jv",
      },
      {
        rel: "alternate",
        hreflang: "cs",
        href: "https://savinginsta.com/cs",
      },
      {
        rel: "alternate",
        hreflang: "de",
        href: "https://savinginsta.com/de",
      },
      {
        rel: "alternate",
        hreflang: "it",
        href: "https://savinginsta.com/it",
      },
      {
        rel: "alternate",
        hreflang: "pl",
        href: "https://savinginsta.com/pl",
      },
      {
        rel: "alternate",
        hreflang: "hu",
        href: "https://savinginsta.com/hu",
      },
      {
        rel: "alternate",
        hreflang: "nl",
        href: "https://savinginsta.com/nl",
      },
      {
        rel: "alternate",
        hreflang: "ro",
        href: "https://savinginsta.com/ro",
      },
      {
        rel: "alternate",
        hreflang: "el",
        href: "https://savinginsta.com/el",
      },
      {
        rel: "canonical",
        href: "https://savinginsta.com/it",
      },
    ],
    script: [
      {
        json: {
          "@context": "https://schema.org",
          "@type": "WebSite",
          name: "Downloader di Instagram - Scarica video di Instagram online - Savinginsta",
          url: "https://savinginsta.com",
          description:
            "Salvataggio di Instagram: scarica facilmente video, reel e foto di Instagram con il nostro strumento intuitivo. Salva i tuoi video Instagram in modo rapido e sicuro su qualsiasi dispositivo.",
          publisher: {
            "@type": "Organization",
            name: "Savinginsta",
            logo: {
              "@type": "ImageObject",
              url: "https://savinginsta.com/static/images/logo.webp",
            },
          },
        },
        type: "application/ld+json",
      },
    ],
  },
  data() {
    return {
      input: "",
      success: false,
      isHttpLoading: false,
      httpError1: false,
      httpError2: false,
      current: 0,
      successList: [],
      faqList: [
        {
          title: `Cos'è un downloader di video Instagram?`,
          content: `Un Instagram Video Downloader è uno strumento basato sul Web progettato per salvare foto, video e contenuti IGTV di Instagram per un uso successivo. Savinginsta si distingue come la scelta migliore per scaricare facilmente contenuti da Instagram.`,
        },
        {
          title: `È necessario accedere al mio account Instagram per utilizzare Savinginsta?`,
          content: `No, non è necessario accedere al tuo account Instagram. Savinginsta garantisce download sicuri e anonimi da Instagram senza richiedere alcuna informazione personale.`,
        },
        {
          title: `Posso salvare direttamente i video da Instagram?`,
          content: `Non è possibile scaricare direttamente i video dal tuo feed Instagram o dalle storie di altri tramite Instagram stesso. Tuttavia, Savinginsta offre una soluzione semplice. Basta visitare il loro sito Web all'indirizzo https:// savinginsta.com e seguire le semplici istruzioni fornite.`,
        },
        {
          title: `Il servizio di download di video e foto di Instagram è gratuito?`,
          content: `Sì, Savinginsta fornisce questo servizio in modo completamente gratuito, senza limitazioni sul numero di download.`,
        },
        {
          title: `Posso scaricare contenuti da account Instagram privati?`,
          content: `Infatti, Savinginsta ti consente di scaricare video, storie e foto da account Instagram privati. Istruzioni dettagliate sono disponibili sulla loro piattaforma.`,
        },
        {
          title: `È possibile salvare le storie di Instagram?`,
          content: `Assolutamente. Con Savinginsta puoi visualizzare e scaricare qualsiasi storia di Instagram. Basta fare clic sui tre punti (⁝) nella storia, copiare il collegamento e incollarlo in Savinginsta per avviare il download.`,
        },
        {
          title: `Savinginsta supporta i download sui computer?`,
          content: `Sì, Savinginsta è completamente compatibile con i PC e ti consente di scaricare video, foto, storie e altro di Instagram direttamente sul tuo computer.`,
        },
        {
          title: `Posso utilizzare Savinginsta per scaricare da Instagram su dispositivi Android?`,
          content: `Certamente. Per gli utenti Android, copia semplicemente il collegamento al post di Instagram, incollalo in Savinginsta e salva. Per maggiori dettagli, visita la loro guida sul download da Instagram su Android.`,
        },
        {
          title: `Come posso scaricare video e foto di Instagram su iPhone/iPad (iOS)?`,
          content: `Savinginsta ha creato una guida passo passo intuitiva per scaricare vari tipi di video sul tuo iPhone o iPad. Segui questo collegamento per istruzioni: Scarica video di Instagram su iPhone.`,
        },
        {
          title: `Cosa succede se il video di Instagram viene riprodotto invece di essere scaricato??`,
          content: `Per risolvere questo problema, fai clic con il pulsante destro del mouse sul video e seleziona "Salva con nome..." per scegliere la posizione di salvataggio desiderata, anziché fare clic con il pulsante sinistro del mouse.`,
        },
        {
          title: `Dove vengono archiviati i video dopo il download?`,
          content: `I video scaricati vengono generalmente archiviati nella cartella "Download" sia sui dispositivi mobili Android che sui PC.`,
        },
      ],
    };
  },
  computed: {
    ...mapGetters(["language"]),
  },
  mounted() {
    this.debouncedDownInput = this.debounce(this.downInput, 1000);
    //到达首页
    handleClick("guide_homepage_frist", {});
    handleClick("guide_homepage", {});
  },
  methods: {
    async downloadHandel() {
      if (this.isHttpLoading || this.input === "") return;
      this.isHttpLoading = false;
      this.httpError1 = false;
      this.httpError2 = false;
      this.input = this.input.replace(/^.*\s?https:\/\//, "https://");
      const insUrlPattern = new RegExp("^http(s|)://.*instagram.com.*/.*$");
      let type = checkString(this.input);
      if (!insUrlPattern.test(this.input)) {
        //点击解析下载按钮
        handleClick("action_ins_detect_boinsom", {
          site: "other",
          noislink: this.input,
          from: "video",
          type: type,
        });
        this.httpError2 = true;
        this.isHttpLoading = false;
        return;
      }
      //点击解析下载按钮
      handleClick("action_ins_detect_boinsom", {
        site: "other",
        from: "video",
        type: type,
      });
      //开始解析  ins_start_resolve
      handleClick("ins_start_resolve", {
        islink: this.input,
        from: "video",
        type: type,
      });
      this.isHttpLoading = true;
      try {
        let result = this.uki(this.input);
        const response = await fetch(
          "https://savinginsta.com/api/downloader/analysis",
          {
            method: "POST",
            headers: { "Content-Type": "application/json" },
            body: JSON.stringify({
              path: result,
            }),
          }
        );
        let encryptedResponse = await response.text();
        let parse = JSON.parse(encryptedResponse);
        if (parse.code != 200) {
          // 解析失败  ins_resolve_fail
          handleClick("ins_resolve_fail", {
            reason: "Failed to fetch",
            islink: this.input,
            from: "video",
            type: type,
          });
          this.httpError1 = true;
          this.isHttpLoading = false;
          return;
        } else {
          //解析成功  ins_resolve_success
          handleClick("ins_resolve_success", {
            type: type,
            from: "video",
          });
          let decryptedResponse = await this.eki(parse.data); // 使用你的解密函数
          this.successList = JSON.parse(decryptedResponse);
          this.success = true;
          this.isHttpLoading = false;
        }
      } catch (error) {
        // 解析失败  ins_resolve_fail
        handleClick("ins_resolve_fail", {
          reason: "Failed to fetch",
          islink: this.input,
          from: "video",
          type: type,
        });
        console.error(error);
        this.httpError1 = true;
        this.isHttpLoading = false;
      }
    },

    uki(input) {
      let CIPHER_ALGORITHM = "DES-CBC";
      let IV_SIZE = 8;
       
      
  try {
        const complexKey = [
          process.env.part1,
          process.env.part2,
          process.env.part3,
          process.env.part4,
          process.env.part5,
          process.env.part6,
          process.env.part7,
          process.env.part8,
        ].join("");
        const keyBytes = CryptoJS.enc.Utf8.parse(complexKey);
        const inputBytes = CryptoJS.enc.Utf8.parse(input);
        const ivBytes = CryptoJS.lib.WordArray.random(IV_SIZE);
        const encrypted = CryptoJS.DES.encrypt(inputBytes, keyBytes, {
          iv: ivBytes,
          mode: CryptoJS.mode.CBC,
          padding: CryptoJS.pad.Pkcs7,
        });
        const ciphertext = ivBytes.concat(encrypted.ciphertext);
        return ciphertext.toString();
      } catch (error) {
        console.error(error);
        return null;
      }
    },
    eki(cipherText) {
      let CIPHER_ALGORITHM = "DES-CBC";
      let IV_SIZE = 8;
       
      const complexKey = [
          process.env.part1,
          process.env.part2,
          process.env.part3,
          process.env.part4,
          process.env.part5,
          process.env.part6,
          process.env.part7,
          process.env.part8,
        ].join("");
      try {
        let keyBytes = CryptoJS.enc.Utf8.parse(
          complexKey.padEnd(CIPHER_ALGORITHM === "DES-CBC" ? 8 : 16)
        );
        let ivBytes = { iv: CryptoJS.enc.Hex.parse(process.env.DES_IV) }; // 如果使用CBC模式，需要一个初始化向量iv，这里是空向量
        let decrypted = CryptoJS.DES.decrypt(
          { ciphertext: CryptoJS.enc.Hex.parse(cipherText) },
          keyBytes,
          ivBytes
        );
        return decrypted.toString(CryptoJS.enc.Utf8);
      } catch (e) {
        console.error(e);
        return null;
      }
    },
    sendDownload(event) {
      if (event.keyCode === 13 && !this.isHttpLoading) {
        this.downloadHandel();
        event.preventDefault();
        return false;
      }
    },
    changeTab(k) {
      this.current = k;
    },
    handleInput(e) {
      this.debouncedDownInput(e);
    },
    debounce(fn, delay) {
      let timer;
      return function () {
        let context = this;
        let args = arguments;
        clearTimeout(timer);
        timer = setTimeout(() => {
          fn.apply(context, args);
        }, delay);
      };
    },

    downInput(e) {
      let type = checkString(e.target.value);
      // 粘贴链接到输入框 action_ins_paste
      handleClick("action_ins_paste", {
        islink: e.target.value,
        from: "photo",
        type: type,
      });
    },
    handleClickPasted() {
      if (!navigator.clipboard) {
        console.log("Clipboard API not available");
        return;
      }
      navigator.clipboard
        .readText()
        .then((text) => {
          this.input = text;
          let type = checkString(text);
          // 粘贴链接到输入框 action_ins_paste
          handleClick("action_ins_paste", {
            islink: text,
            from: "photo",
            type: type,
          });
        })
        .catch((err) => {
          console.error("Failed to read clipboard contents: ", err);
        });
    },
    showLanguageHandel() {
      this.$refs.languageRef.close();
    },
    refresh() {
      this.success = false;
      this.input = "";
      this.successList = [];
    },
    goToTop(site) {
      //切换页面
      handleClick("action_page_switch", {
        site: site,
        from: top,
      });
    },
    goToTools(site) {
      //切换页面
      handleClick("action_page_switch", {
        site: site,
        from: tools,
      });
    },
  },
};
</script>
<style lang="scss" scoped>
@import "@/static/style/index.css";
.loading {
  .loading-dots {
    position: relative;
    z-index: 999;
    margin-top: 70px;
  }

  .dot {
    background-color: #ffffff;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin: 0 10px;
    animation: loading-animation 1.5s infinite;
  }

  .dot:nth-child(2) {
    animation-delay: 0.5s;
  }

  .dot:nth-child(3) {
    animation-delay: 0.8s;
  }
  .dot:nth-child(4) {
    animation-delay: 1s;
  }
}
@keyframes loading-animation {
  0%,
  50%,
  80%,
  100% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.5);
  }
}
@media (max-width: 768px) {
  .loading {
    .loading-dots {
      margin-top: 26px !important;
    }
    .dot {
      width: 8px !important;
      height: 8px !important;
    }
  }
}
</style>
